﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace LensflareAIContest {
    [Serializable]
    public class SpaceshipRules {
        public float AccelerationMax { get; internal set; }
        public float HealthMax { get; internal set; }
        public float EnergyMax { get; internal set; }
        public float EnergyNeededForShot { get; internal set; }
        public float EnergyRegenerationRate { get; internal set; }
        public float Radius { get; internal set; }
        public float CountPerTeam { get; internal set; }
    }

    [Serializable]
    public class HeartRules {
        public float HealthMax { get; internal set; }
        public float Radius { get; internal set; }
        public float OffsetFromWorldCenter { get; internal set; }
    }

    [Serializable]
    public class ProjectileRules {
        public float VelocityInitial { get; internal set; }
        public float Radius { get; internal set; }
        public float LifeSpan { get; internal set; }
        public float DamageCausedOnHit { get; internal set; }
    }

    [Serializable]
    public class WorldRules {
        public int TeamCount { get; internal set; }
        public float PhysicsSpaceScale { get; internal set; }
        public Vector2 Extent { get; internal set; }
        public float UnitSpawnDistanceFromHeart { get; internal set; }
    }

    [Serializable]
    public class Rules {
        public SpaceshipRules Spaceship { get; internal set; }
        public HeartRules Heart { get; internal set; }
        public ProjectileRules Projectile { get; internal set; }
        public WorldRules World { get; internal set; }
    }
}
